EBSILON®Professional Online Dokumentation
EbsScript / Zugriff auf Topologie und Eigenschaften
In diesem Thema
    Zugriff auf Topologie und Eigenschaften
    In diesem Thema

    Topologiezugriff


    EbsScript dient in erster Linie zur automatisierten Verarbeitung der in EBSILON hinterlegten Daten. Eine Änderung der Topologie der Schaltung ist mit EbsScript nicht möglich. Dies muss mit dem grafischen Editor gemacht werden.

    In bestimmten Fällen ist es jedoch hilfreich, aus EbsScript heraus auf Topologiefunktionen zugreifen zu können. Um z.B. von einer Komponente aus auf die Werte der angeschlossenen Leitungen zurückgreifen zu können, muss man wissen, welche Leitung wo angeschlossen ist. Dies wird durch spezielle Topologie-Funktionen (in diesem Fall getPipeAtLink) ermöglicht, die im Kapitel Vorgabewertfunktionen beschrieben sind.

    Es gibt jedoch eine vereinfachte Syntax, mit der man auf Anschlüsse zurückgreifen kann. Hierbei sind auch Verschachtelungen möglich.

    Syntax

    Beschreibung

    Beispiel

    compname._i

    Leitung an Pin i

    Generator._2.Q  Elektrische Generatorleistung

    compname.__i

    Komponente am anderen Ende der Leitung an Pin i

    Dampferzeuger.__2.ETAI Wirkungsgrad
    HD-Turbine Dampferzeuger.__2._2.P    Austrittsdruck HD-Turbine

    pipename._in

    Komponente am Eingang der Leitung

    Elektro._in.ETAG Generatorwirkungsgrad

    pipename._out

    Komponente am Ausgang der Leitung

    L_Frischdampf._out.ETAI  Wirkungsgrad HD-Turbine

    comp.__[Anschlussnummer] Zugriff auf nächstes Bauteil (KEINE Leitung, welches über eine Leitung an Anschluss „Anschlussnummer" verbunden ist. turbine.__6 gibt das mit dem Wellenausgang der Turbine verbundene Bauteil zurück
    comp.__[Anschlussnummer]d Zugriff auf nächstes Bauteil oder Leitung, welches über eine Leitung an Anschluss „Anschlussnummer" verbunden ist. transmitter.__1d gibt das mit dem Eingang des Signalübertragers verbundene Objekt zurück
    comp.__[Anschlussnummer]p Zugriff auf nächste Leitung (KEIN Bauteil), welches über eine Leitung an Anschluss „Anschlussnummer" verbunden ist. regler.__3p gibt die mit dem Stellgrößenausgang des Reglers verbundene Leitung zurück
    pipe._in und ._out Zugriff auf nächstes Bauteil (KEINE Leitung), welches mit dem Ein- bzw. Austritt der Leitung verbunden ist. water._in gibt das mit dem Eintritt der Wasserleitung verbundene Bauteil zurück
    pipe._ind und ._outd Zugriff auf nächstes Bauteil oder Leitung, welches mit dem Ein- bzw. Austritt der Leitung verbunden ist. logic._ind gibt das mit dem Eintritt der Logikleitung verbundene Objekt zurück
    pipe._inp und ._outp Zugriff auf nächste Leitung (KEIN Bauteil), welches mit dem Ein- bzw. Austritt der Leitung verbunden ist. scheduled._inp gibt die Leitung zurück, auf die die Sollwertleitung zeigt

    Die EbsScript-Funktion getLogicObj() kann benutzt werden, um auf an einer Leitung andockende Wertekreuze, Bauteile wie 45, 46 etc. und andere Logikleitungen zugreifen zu können.

     

    Entsprechend kann auch auf andere Attribute der Objekte eines Modells (Komponenten, Leitungen, Makros, Wertekreuze, Textfeldern, OLE-Objekt, Grafische Elemente usw.) zugegriffen werden - einige Eigenschaften sind nicht bei allen Objektarten vorhanden:

    Syntax

    Beschreibung

    Datentyp

    Beispiel

    absoluteName Vollständiger Objektname String "::Getriebe::Rechner"
    alignHorz Horizontale Ausrichtung TextAlignmentHorizontalEnum T.alignHorz := TextAlignmentHorizontalRight;
    alignVert Vertikale Ausrichtung TextAlignmentVerticalEnum T.alignVert := TextAlignmentVerticalCenter;
    alwaysDIN Darstellung nach DIN, klassiche Leitungstypen, einige Komponenten Boolean T.alwaysDIN := false;
    calcstatus Berechnungsstatus 0: Komponente deaktiviert, : Komponente wird berechnet,  2: Konponente deaktiviert, aber bei Ausgaben berücksichtigt Integer T.calcstatus := 0,1,2;
    calcresultsatiterationstep true: Ergebnisberechnung auch nach jedem Iterationsschritt CalculateResultsAtIterationStepEnum T.calcresultsatiterationstep := CalculateResultsAtIterationStepOnlyLastOne;
    calculationFPROG ID des benutzerdefinierten Unterprogramms (siehe Vorgabewert FPROG) Integer KernelScripting, siehe auch Komponenten 65 und 93
    calculationKernelScript Text des zur Komponente erstellen Kernelscripts String T.KernelScript := "begin end;";
    calculationKernelScriptAuxiliaryCalls KernelScript spezifische Hilfsaufrufe ComponentCalculationKernelScriptAuxiliaryCallsEnum T.ComponentCalculationKernelScriptAuxiliaryCall := ComponentCalculationKernelScriptAuxiliaryCallsNo;
    calculationKernelScriptGenerateDefaultEquations KernelScript spezifisch: Standard-Gleichungen automatisch generieren ComponentCalculationKernelScriptGenerateDefaultEquationsEnum T.ComponentCalculationKernelScriptGenerateDefaultEquations := ComponentCalculationKernelScriptGenerateDefaultEquationsYes;
    calculationMode Berechnungsmodus einer Komponente:
    Standard, XUI-DLL, KernelScripting
    ComponentCalculationModeEnum T.ComponentCalculationMode := ComponentCalculationModeInternal:
    calculationSequence Vorgabewert FSEQ einiger Komponenten, KernelScripting, XUI-DLL ComponentCalculationSequenceEnum T.ComponentCalculationSequence := TestLib_AreIntegersEqual_AndExit (T.calculationSequence, ComponentCalculationSequenceParallelToOtherComponents;
    color Füllungsfarbe der Komponenten (Standard: gelb) Integer T.color := $2068FF; // orange
    color2 Wechselfarbe eine Leitung Integer T.color2 := $FF0000; // blau
    color3 ungenutzt Integer T.color3 := $0000FF; // rot
    color4 Rand eine Kompente (Standard schwarz) Integer T.color4 := $D0E040; // hellblau
    containerMacro Das Makro, in dem ein Bauteil enthalten ist ebsmacro

    println (Getriebe.containerMacro);

    currentPicture Index des Bildes, das zur Darstellung eines Objekts genutzt wird integer T.currentPicture := 0, 1, 2... ;
    description Beschreibungstext String Messwert.description:="T hinter HD-VW 5";
    description2

    Beschreibungstext 2 (z. B. Leittechnik-Kennung)

    String Messwert.description2:="I0005";
    description3 Beschreibungstext 3 (z. B. Verwendungsbereich) String

    Messwert.description3:="Kessel";

    description4 Beschreibungstext 4 (z. B. Kennzeichen) String Messwert.description4:="X";
    disableEbsScriptEvaluation In Textfeldern die Ausführung von EbsScripten deaktivieren - dann wird der Scripttext ausgegeben. Boolean Textfeld.disableEbsScriptEvaluation := true;
    drawBodyStyle Standardgrafik und/oder Bild anzeigen DrawBodyStyleEnum T.DrawBodyStyle := DrawBodyStyleDefaultAndPicture;
    fontAutoScale Objekt- und/oder Fontgröße anpassen - oder keine Anpassung Integer Getriebe::Rechner.fontAutoScale := 2;
    fontCol Schriftfarbe Integer T.fontcol := $480048; // Purpur
    fontName Name der Schriftart String println (T.fontName);
    fontPointSize Größe der Schrift in Points Integer T.fontPointSize := 14;
    fontSize Größe der Schrift Integer T.fontSize := -18;
    fullName Vollständiger Name des Objekts String "Getriebe::Rechner"
    htmlAutoResize Für HTML-Texte: automatische Größenanpassung, so dass der Text vollständidg dargestellt wird Boolean Text.htmlAutoResize := true;
    htmlCSS Das CSS des HTML-Textfeldes String Text.htmlCSS:= "h1 {color:mediumseagreen; font-weight:bold; font-size:28pt}";
    htmlSyntax Text unverarbeitet ausgeben (false) oder als HTML interpretiert (true) Boolean Text.htmlSyntax := true;
    name Name des Objekts String "Rechner"
    parentObject Das zugehörige Eltern-Objekt (bei Makros) ebsobject println (Getriebe::Rechner.parentObject);
    pictureCount Anzahl der einem Objekt zugeordneten Bilder Integer println (Getriebe.pictureCount);
    shape Die Form der Komponente, mit der sie dargestellt wird Integer T.shape := 4;
    shapeCount Anzahl der verfügbaren Formen einer Komponente Integer println (Getriebe::Kondensator.shapeCount);
    sortString Sortierstring für die interne Rechenkern-Objekt-Reihenfolge String T.sortString := "bb";
    text Der Text der im Textfeld eingegeben wurde. String println (Text.text); --> {getfilename()}
    textEvaluated Der Text der in einem Textfeld angezeigt wird. String println (Text.textEvaluated); -->AllProperties.ebs
    textDependsOnProfile true: unterschiedliche Texte in Profilen möglich Boolean Text.textDependsOnProfile := true;
    textFromParentProfile true: Es wird der Text aus dem Eltern-Profil angezeigt Boolean Text.textFromParentProfile := false;
    transientState transiente bzw. instationäre Berechnung: Dieser eine zeitabhängige Vorgabewert stellt die Bauteil-Ergebnisse aller zeitabhängigen Vorgabewerte diese Bauteils zum Ende eines Zeitschritts als Startwerte für den nächsten Zeitschritt zur Verfügung. String println (Getriebe::Kondensator.transientState);
    visible Sichtbarkeit des Objekts Integer

    Messwert.visible:=false;          // unsichtbar schalten

    width Breite einer Leitung Integer T._1.width := 4; // Leitung an Anschluss 1 auf Breite 4 setzen

     

    Die Verwendung dieser Syntax ist sowohl mit Ebsvar-Konstanten (direkte Verwendung des Namens des entsprechenden Objekts in der Schaltung) als auch mit Ebsvar-Variablen (im EbsScript definierte Variablen, die auf Objekte in der Schaltung verweisen) möglich. Beispiel:

    Wenn es in der Schaltung eine Leitung mit dem Namen H2O_DAMPF_4 gibt und ePipe im EbsScript deklariert ist

    var ePipe:ebsPipe;
    

    kann nach der Zuweisung

     ePipe:=H2O_DAMPF_4;
    

    sowohl mit

    epipe.p
    

    als auch mit

    H2O_DAMPF_4.p

    auf den Druck dieser Leitung zugegriffen werden.